package controller

import (
	"blogger/dao"
	"blogger/model"
	"github.com/gin-gonic/gin"
	"github.com/spf13/viper"
	"net/http"
	"strconv"
)

// 跳转首页
func Index(c *gin.Context) {
	// 获取query参数，当前页
	pageNumber, _ := strconv.Atoi(c.Query("pageNumber"))

	// 判断是否登录
	isLogin := IsLogin(c)

	// 判断页码
	if pageNumber <= 0 {
		pageNumber = 1
	}
	// 获取文章条目
	artList, _ := dao.GetArticleListByPageNumber(pageNumber)
	// 获取分页配置信息
	pageModel := SetPage(pageNumber)

	c.HTML(http.StatusOK, "index.html", gin.H{
		"articleList": &artList,
		"pageModel": pageModel,
		"isLogin": isLogin,
	})
}

// 设置分页信息

func SetPage(page int) model.Page {
	pageModel := model.Page{}
	pageSize := viper.GetInt("page.pageSize")
	// 文章的总条目数
	count := dao.GetArticleListCount(0)
	// 计算总页数
	allPageNumber := (count-1)/pageSize + 1
	// 如果当前页小于等于1，上一页不能点击
	if page <= 1 {
		pageModel.HasPre = false
		pageModel.HasNext = true
	} else {
		//pageModel.HasNext = true
		// 如果当前页大于等于总页数，下一页不能点击
		if page >= allPageNumber {
			pageModel.HasNext = false
			pageModel.HasPre = true
		} else {
			pageModel.HasPre = true
			pageModel.HasNext = true
		}
	}



	pageModel.PreLink = "/?pageNumber=" + strconv.Itoa(int(page-1))
	pageModel.NextLink = "/?pageNumber=" + strconv.Itoa(int(page+1))
	pageModel.TotalCount = count

	return pageModel
}
